package com.jbm.jbmsupplier.utlis;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by Love on 2016/11/13.
 */

public class Time_Transformation {
    public static final String StringF="yyyy-MM-dd HH:mm:ss";
    public static final String StringSS="yyyy-MM-dd HH:mm:ss";
    public static final String StringS="yyyy年MM月dd日 HH:mm:ss";
    public static final String StringSP="yyyy/MM/dd HH:mm:ss";
    public static final String StringG="yyyy-MM-dd";
    /**
     * 将短时间格式字符串转换为时间HH:mm:ss
     *
     * @param strDate
     * @return
     */
    public static Date strTotime(String strDate) {
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        ParsePosition pos = new ParsePosition(0);
        Date strtodate = formatter.parse(strDate, pos);
        return strtodate;
    }



    public static String getTime(Date date) {//可根据需要自行截取数据显示
//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
//        SimpleDateFormat format = new SimpleDateFormat(" HH:mm:ss");
        return format.format(date);
    }
    public static String getTimes(Date date) {//可根据需要自行截取数据显示
//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
        SimpleDateFormat format = new SimpleDateFormat(" HH:mm:ss");
        return format.format(date);
    }


    /**
     * string类型转换为date类型
     * @param strTime
     * @param formatType
     * @return
     * @throws ParseException
     */
    // strTime要转换的string类型的时间，formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日
    // HH时mm分ss秒，
    // strTime的时间格式必须要与formatType的时间格式相同
    public static Date stringToDate(String strTime, String formatType)
            throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);
        Date date = null;
        date =formatter.parse(strTime);
        return date;
    }
    //date类型转换为String类型
    // formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
    // data Date类型的时间
    public static String dateToString(Date data, String formatType) {
        return new SimpleDateFormat(formatType).format(data);
    }

    /**
     * date类型转换为long类型
     *
     * @param date
     * @return
     */

    // date:要转换的date类型的时间
    public static long dateToLong(Date date) {
        return date.getTime();
    }
    /**
     * 将毫秒转化成固定格式的时间
     * 时间格式: yyyy-MM-dd HH:mm:ss
     *
     * @param millisecond
     * @return
     */
    public static String getDateTimeFromMillisecond(String mat,Long millisecond){
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(mat);
        Date date = new Date(millisecond);
        String dateStr = simpleDateFormat.format(date);
        return dateStr;
    }


    /**
     * String类型转换为long类型
     * @param strTime
     * @param formatType
     * @return
     * @throws ParseException
     */
    // strTime要转换的String类型的时间
    // formatType时间格式
    // strTime的时间格式和formatType的时间格式必须相同
    public static long stringToLong(String strTime, String formatType)
            throws ParseException {
        Date date = stringToDate(strTime, formatType); // String类型转成date类型
        if (date == null) {
            return 0;
        } else {
            long currentTime = dateToLong(date); // date类型转成long类型
            return currentTime;
        }
    }
}
